package com.gouwudai.gobbs.dao;

import java.util.List;

import com.gouwudai.gobbs.common.IPageList;
import com.gouwudai.gobbs.pojo.TbbsClassUser;
import com.litt.core.common.PageParam;
import com.litt.core.exception.BusiException;

public interface IClassUserDAO
{

    /**
     * 保存版面成员信息
     * @param tbbsClassUser
     * @throws BusiException
     */
    public void save(TbbsClassUser tbbsClassUser);

    /**
     * 删除版面成员信息
     * @param cuId
     */
    public void delete(Integer cuId);
    
    /**
     * 批量删除版面成员信息
     * @param cuId
     */
    public void deleteBatch(String cuIds);

    
    /**
     * 查询分类/版面版主
     * @param classId
     * @return List
     */
    public List listClassManager(Integer classId);
    
    /**
     * 分页查询分类/版面版主
     * @param classId
     * @param pageIndex
     * @param pageSize
     * @param sort
     * @return
     */
    public IPageList listClassUserByPage(PageParam pageParam);

    /**
     * 查询分类/版面认证用户
     * @param classId
     * @return List
     */
    public List listClassAuthUser(Integer classId);
    
    /**
     * 查询指定用户被认证过的版面
     * @param userId
     * @return List
     */
    public List listAuthUserClass(Integer userId);
    
    /**
     * 查询指定用户是否被指定版面认证过.
     * 
     * @param classId 
     * @param userId 
     * 
     * @return List
     */
    public boolean hasClassAuth(Integer classId,Integer userId);
    
    /**
     * 查询当前用户是否为分类/版面版主
     * @param classId
     * @param userId 
     * @return boolean
     */
    public boolean isClassManager(Integer classId,Integer userId);
    
    /**
     * 查询所有没有设置过版面用户的有效用户.
     * 
     * @param userType 版面用户类型: 1-认证用户,2-版主
     * @param classId 版面ID
     * 
     * @return the list
     */
    public List listAllUserClassNotHave(Integer classId,Integer userType);

}